package com.itheima.Jiuye16;

import java.lang.reflect.Constructor;
import java.lang.reflect.Field;
import java.lang.reflect.InvocationTargetException;

public class ReflecrDemo02 {
    public static void main(String[] args) throws ClassNotFoundException, NoSuchMethodException, IllegalAccessException, InvocationTargetException, InstantiationException, NoSuchFieldException {
        Class<?> aClass = Class.forName("com.itheima.Jiuye16.Student1"); //获取对应的Class对象
        Constructor<?> constructor = aClass.getDeclaredConstructor(); // 获取构造器对象
        constructor.setAccessible(true);   // 访问私有化成员变量或方法，去除构造权限
        Object o = constructor.newInstance(); //使用构造器的方法创建对象 ，获取到的对象一般不向下转型
        Field name = aClass.getDeclaredField("name");// 获取成员|成员方法
        name.setAccessible(true);   //去除成员变量权限
        name.set(o,"张三");       //调用set方法给name赋值
        Object o1 = name.get(o);   // 调用get方法获取到name的值
        System.out.println(o1);    //打印name的值

        //如果还想给其他的成员变量赋值同上
    }
}
